/**
 * 子弹对象
 * 横坐标，纵坐标，图片
 * 坦克在哪里，子弹最初就在哪里
 * 坦克方向是什么，子弹的方向就是什么
 */

class Bullet {
    // 构造函数
    constructor(x, y, dir) {
        this.x = x;
        this.y = y;
        this.dir = dir;
        //方向就可以决定图片
        if (this.dir == "up") {
            this.img = imgList[9];
        }
        else if (this.dir == "down") {
            this.img = imgList[10];
        }
        else if (this.dir == "left") {
            this.img = imgList[11];
        }
        else if (this.dir == "right") {
            this.img = imgList[12];
        }
        //图片可以决定大小
        this.width = this.img.width / 2;
        this.height = this.img.height / 2;
        //子弹移动需要一个速度
        this.speed = 30;
    }
    //移动的方法
    move() {
        //左负右正，上负下正
        if (this.dir == "left") {
            this.x -= this.speed;
        }
        else if (this.dir == "right") {
            this.x += this.speed;
        }
        else if (this.dir == "up") {
            this.y -= this.speed;
        }
        else if (this.dir == "down") {
            this.y += this.speed;
        }
        //TODO：子弹移出屏幕以后，怎么办？
        if (this.x < -30 || this.x > game.width + 30 || this.y < -30 || this.y > game.height + 30) {
            //我们所有的子弹都在bulletList这个集合里面，要从这个集合里面移除这颗子弹
            //1.找到自己在数组里面的索引 
            let index = bulletList.indexOf(this);
            //2.删除自己
            bulletList.splice(index, 1);
        }
    }
    /**
     * 绘制对象
     * @param {CanvasRenderingContext2D} ctx 
     */
    draw(ctx) {
        //每次绘制自己之前，让自己移动一下
        this.move();
        ctx.drawImage(this.img, this.x, this.y, this.width, this.height);
    }

}